package com.henu.engineer.dao.mapper.questionnaire

import com.henu.engineer.dao.entity.questionnaire.*
import org.apache.ibatis.annotations.Mapper
import org.springframework.stereotype.Repository

/**
 * 问卷调查
 */
@Mapper
@Repository
interface QuestionnaireInitiateMapper {

    fun getAllQuestionnaireInitiate(): List<QuestionnaireInitiate>
    fun getQuestionnaireInitiate(questionnaireInitiateId: Int): QuestionnaireInitiate


    /**
     * 申请发布问卷
     * 1.查询问卷模板+插入
     * 2.查询相应问题+插入
     * 3.查询相应选项+插入
     */
    fun getQuestionnaire(questionnaireId: Int?): QuestionnaireInitiate
    fun initiateNewQuestionnaire(questionnaireInitiate: QuestionnaireInitiate): Boolean

    fun getQuestion(questionnaireId: Int?): List<QuestionnaireQuestion>
    fun initiateNewQuestionnaireQuestion(questionnaireQuestion: List<QuestionnaireQuestion>, questionnaireInitiateId: Int?): Boolean

    fun getOption(questionnaireId: Int?): List<QuestionnaireOption>
    fun initiateNewQuestionnaireOption(questionnaireOption: List<QuestionnaireOption>, questionnaireInitiateId: Int?): Boolean


    /**
     * 填写问卷
     * 1.将实名记录填入
     * 2.根据问卷填写，统计问卷结果
     */
    fun submitRealNameQuestionnaire(questionnaireResultRealName: List<QuestionnaireResultRealName>): Boolean
    fun modifyStatisticalResults(questionnaireResultRealName: List<QuestionnaireResultRealName>): Boolean


    //调查问卷总结果
    fun getRealNameResult(questionnaireInitiateId: Int): QuestionnaireInitiate

    //主观题内容
    fun getSubjectiveResult(questionnaireInitiateId: Int, questionNumber: Int): List<QuestionnaireResultRealName>

    //谁选了这个选项
    fun getChooser(questionnaireInitiateId: Int, questionNumber: Int, optionNumber: String): List<QuestionnaireResultRealName>


}